import axios from 'axios'

import { Message, MessageBox } from 'element-ui'
import store from '../store'
import { getToken , getOnly ,setOnly,removeOnly,removeToken} from '@/utils/auth'
const flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
import {logout} from '@/api/login'

// 创建axios实例
const service = axios.create({
  // baseURL: process.env.BASE_API, // api的base_url
  // baseURL:'http://192.168.1.36:8080', //默尔
  // baseURL:'http://192.168.1.9:8080',//樊
  // baseURL:'http://192.168.1.44:8080',//ffei
  // baseURL:'http://192.168.1.13:8080',//meng
  // baseURL:'http://xfzw.qianyingapp.com:8888/shop_admin',//moer  
 // baseURL:'http://xfzw.qianyingapp.com/shop_admin',
  baseURL:"https://api.dianmihl.com/",
  timeout: 30000 // 请求超时时间
})
// axios.defaults.withCredentials=true;
// axios.defaults.headers.post['Content-Type'] = 'application/json;charset=utf-8';
  
// request拦截器
service.interceptors.request.use(config => {
  // 先判断token是否存在
  config.headers['Content-Type'] ='application/json;charset=utf-8'
  // config.withCredentials  =  true
  // config.credentials = true
  // console.log(getOnly())
  // if (getToken()) {
  //   config.headers['Cookie'] = getOnly() // 让每个请求携带自定义token 请根据实际情况自行修改
  // }
  return config
}, error => {
  // Do something with request error
  console.log(error) // for debug
  return Promise.reject(error)
})

// respone拦截器
service.interceptors.response.use(
  response => {
  /**
  * code为非200是抛错 可结合自己业务进行修改
  */
    // response.setHeader("Access-Control-Allow-Credentials", "true");
    // console.log('jdfksjdfksdk',document.cookie)
    const res = response.data
    if(res.errno == 501){
      MessageBox.confirm('登录状态已过期，请重新登录', '确定登出', {
        confirmButtonText: '重新登录',
        // cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        logout({userId:getToken()}).then(response => {

        })
        removeToken()
        removeOnly()  
        window.location.href = '#/login'
        // this.$router.replace({path:'/login'})
        // window.location.reload()
        return
      }).catch(() => {
        logout({userId:getToken()}).then(response => {

        })
        removeToken()
        removeOnly()  
        window.location.href = '#/login'
        // this.$router.replace({path:'/login'})
        // window.location.reload()
        return
      })
    }else{
      return response.data
    }
    
    // if (res.code !== 200) {
    //   Message({
    //     message: res.message,
    //     type: 'error',
    //     duration: 3 * 1000
    //   })

      // 401:未登录;当token失效时返回
      // if (res.code === 401) {
      //   MessageBox.confirm('你已被登出，可以取消继续留在该页面，或者重新登录', '确定登出', {
      //     confirmButtonText: '重新登录',
      //     cancelButtonText: '取消',
      //     type: 'warning'
      //   }).then(() => {
      //     store.dispatch('FedLogOut').then(() => {
      //       location.reload()// 为了重新实例化vue-router对象 避免bug
      //     })
      //   })
      // }
    //   return Promise.reject('error')
    // } else {
    //   return response.data
    // }
  },
  error => {
    if(!flag){
      // Message({
      //   message: error.message,
      //   type: 'error',
      //   duration: 3 * 1000
      // })
    }
    console.log('err1--' + error)// for debug
    // Message({
    //   message: error.message,
    //   type: 'error',
    //   duration: 3 * 1000
    // })
    
    return Promise.reject(error)
  }
)


export default service
